#!/usr/bin/python
# -*-coding:UTF-8 -*-

# ========================
# @Time  : 2021-01-30
# @Author: Sunny
# ========================

import time

print()
def doc(func):
    """
    :param func: 接收被装饰的函数
    :return:
    """
    def wrapper(*args,**kwargs):
        print('---------2----------------')
        print('装饰器扩展的功能代码')
        #调用原功能函数
        func(*args,**kwargs)
        print('-------------执行完毕-----4------------')
    return wrapper


def count_time(func):
    """
    实现一个计算函数运行时间的装饰器
    :param func: 接收被装饰的函数的
    :return:
    """
    def wrapper(*args,**kwargs):
        start_time = time.time()
        print('------------1----------')
        #调用原函数功能
        func(*args,**kwargs)
        end_time = time.time()
        print('----------5--------------')
        print('函数运行的时间为：', end_time - start_time)

    return wrapper


#由近至远执行，先执行doc，再执行count_time,
#代码等同于：　work()=count_time(doc(work))
@count_time          #work()=count_time(work)
@doc                 #work()=doc(work)
def work(a,b):
    print('----------3--------------')
    print('a+b',a+b)

work(1,2)  #work()执行的是count_time里面的wrapper函数